package cn.px.dao.dto.purchase;

import cn.px.common.bean.BaseDTO;
import cn.px.common.validation.group.UpdateGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @Description 供应商DTO
 * @author 品讯科技
 * @date 2024-08
 * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
public class SupplierDTO extends BaseDTO implements Serializable {

    /**
     * 主键
     */
    @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
    private String id;
    private Integer country;
    /**
     * 账号
     */
    private String account;
    /**
     * 名称
     */
    private String name;
    /**
     * 类型
     */
    private String type;
    /**
     * 单位性质
     */
    private Integer unitNature;
    /**
     * 单位法人
     */
    private String legalPerson;
    /**
     * 电话
     */
    private String phone;
    /**
     * 联系人
     */
    private String contactPerson;
    /**
     * 注册资本
     */
    private BigDecimal registerCapital;
    /**
     * 注册地址
     */
    private String registerAddress;
    /**
     * 送达地址
     */
    private String arriveAddress;
    /**
     * 税号
     */
    private String taxNo;
    /**
     * 开户银行
     */
    private String bankName;
    /**
     * 帐号
     */
    private String bankNo;
    /**
     * 适用项目/分公司
     */
    private String deptIds;

    /**
     * 适用项目/分公司
     */
    private String deptNames;

    private String agent;
    /**
     * 供货类别
     */
    private String supplyType;
    /**
     * 授权书
     */
    private String authorization;
    /**
     * 供货品牌
     */
    private String supplyBrand;
    /**
     * 主营业务
     */
    private String mainBusiness;
    /**
     * 经营范围
     */
    private String businessScope;
    /**
     * 拒绝原因
     */
    private String refuseReason;
    /**
     * QQ
     */
    private String qq;
    /**
     * 微信
     */
    private String wechat;
    /**
     * 邮箱
     */
    private String email;
    /**
     * 状态
     */
    private Integer status;
    /**
     * 申请时间
     */
    private LocalDateTime applyTime;
    /**
     * 申请时间开始
     */
    private LocalDateTime applyTimeStart;
    /**
     * 申请时间结束
     */
    private LocalDateTime applyTimeEnd;
    /**
     * 审核时间
     */
    private LocalDateTime auditTime;
    /**
     * 审核时间开始
     */
    private LocalDateTime auditTimeStart;
    /**
     * 审核时间结束
     */
    private LocalDateTime auditTimeEnd;

    /**
     * 提交审核时间
     */
    private LocalDateTime submitTime;
    /**
     * 提交审核时间开始
     */
    private LocalDateTime submitTimeStart;
    /**
     * 提交审核时间结束
     */
    private LocalDateTime submitTimeEnd;

    /**
     * 工作流实例ID
     */
    private String processInstanceId;

    private Integer auditNode;


    /**
     * 备注
     */
    private String remark;
    /**
     * 创建人
     */
    private String createdUserId;
    /**
     * 创建人名称
     */
    private String createdUserName;
    /**
     * 创建时间
     */
    private LocalDateTime createdTime;
    /**
     * 创建时间开始
     */
    private LocalDateTime createdTimeStart;
    /**
     * 创建时间结束
     */
    private LocalDateTime createdTimeEnd;
    /**
     * 更新人
     */
    private String updateUserId;
    /**
     * 更新人名称
     */
    private String updateUserName;
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
    /**
     * 更新时间开始
     */
    private LocalDateTime updateTimeStart;
    /**
     * 更新时间结束
     */
    private LocalDateTime updateTimeEnd;
    /**
     * 关键字
     */
    private String keyword;

    private List<Integer> statusList;

    private List<Integer> supplyTypeList;

    /**
     * 关闭时间
     */
    private LocalDateTime closeTime;
    /**
     * 关闭描述
     */
    private String closeDesc;

    /**
     * 图片链接地址
     */
    private String imgUrls;

    private String projectId;

    private String purchaseOrderId;

    private List<String> deptList;
}
